package com.springstudy.mybatisplus.dao.provider;

import com.springstudy.mybatisplus.entity.Person;
import org.apache.ibatis.jdbc.SQL;

/**
 * @author chenrongrong
 * @since 2020/3/9 15:01
 */
public class PersonDaoProvider {

    /**
     * 通过自定义类中的方法返回sql，用于注解配置
     * @param person
     * @return
     */
    public String findPersonById(Person person) {
        String sql = "SELECT * FROM person";
        if(person.getId()!=null){
            sql += " where id = #{id}";
        }
        sql += " limit 1";
        return sql;
    }

    /**
     * 通过SQL类拼接返回sql字符串，表达更清晰
     * @param person
     * @return
     */
    public String findPersonList(Person person) {
        return new SQL(){{
            SELECT("id,name,career_id");
            FROM("person");
            if(person.getId()!=null){
                WHERE("id = #{id}");
            }
            if(person.getName()!=null){
                WHERE("name = #{name}");
            }
        }}.toString();
    }
}
